Package org.openquark.cal_Cal_Samples_DirectedGraphLibrary

Source Code of org.openquark.cal_Cal_Samples_DirectedGraphLibrary.Topological_Sort

package org.openquark.cal_Cal_Samples_DirectedGraphLibrary;

import java.util.Map;
import java.util.WeakHashMap;
import org.openquark.cal.internal.runtime.lecc.RTCAF;
import org.openquark.cal.internal.runtime.lecc.RTExecutionContext;
import org.openquark.cal.internal.runtime.lecc.RTFullApp;
import org.openquark.cal.internal.runtime.lecc.RTFunction;
import org.openquark.cal.internal.runtime.lecc.RTPartialApp;
import org.openquark.cal.internal.runtime.lecc.RTResultFunction;
import org.openquark.cal.internal.runtime.lecc.RTValue;
import org.openquark.cal.runtime.CALExecutorException;
import org.openquark.cal_Cal_Collections_List.Output_List;
import org.openquark.cal_Cal_Core_Prelude.Compose;
import org.openquark.cal_Cal_Core_Prelude.Output_J_Object;

public final class Topological_Sort extends RTCAF {
  /**
   * Singleton instance of this class.
   */
  private static final Topological_Sort $instance = new Topological_Sort();

  /*
   * Mappings of execution context to CAF instances.
   */

  /**
   * Execution context -> instance map for topologicalSort
   */
  private static final Map $instancesMap = new WeakHashMap();

  private Topological_Sort() {
  }

  public static final synchronized RTFunction make(RTExecutionContext $ec) {
    RTFunction newInstance =
      ((RTFunction)(java.lang.Object)
        Topological_Sort.$instancesMap.get($ec));

    if (newInstance == null) {
      newInstance = (new RTFullApp.General._0(Topological_Sort.$instance));
      Topological_Sort.$instancesMap.put($ec, newInstance);
    }
    return newInstance;
  }

  public static final synchronized void resetCachedResults(RTExecutionContext $ec) {
    Topological_Sort.$instancesMap.remove($ec);
  }

  public final int getArity() {
    return 0;
  }

  public final java.lang.String getModuleName() {
    return "Cal.Samples.DirectedGraphLibrary";
  }

  public final java.lang.String getUnqualifiedName() {
    return "topologicalSort";
  }

  public final java.lang.String getQualifiedName() {
    return "Cal.Samples.DirectedGraphLibrary.topologicalSort";
  }

  /**
   * f
   * This method implements the function logic of the CAL function Cal.Samples.DirectedGraphLibrary.topologicalSort
   */
  public final RTValue f(final RTResultFunction $rootNode, final RTExecutionContext $ec) throws CALExecutorException {
    // Release the fields in the root node to open them to garbage collection
    $rootNode.clearMembers();
    // Top level supercombinator logic
    return
      new RTPartialApp._3._2(
        Compose.$instance,
        new RTFullApp.General._1._S(
          Output_List.$instance,
          Output_J_Object.$instance),
        new RTPartialApp._2._1(
          org.openquark.cal_Cal_Utilities_DirectedGraph.Topological_Sort.$instance,
          _dict___Eq___Vertex.$instance));
  }

}
TOP

Related Classes of org.openquark.cal_Cal_Samples_DirectedGraphLibrary.Topological_Sort

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.